package com.xuzao.developer.base.criteria;

import java.util.ArrayList;
import java.util.List;


/**
 * @description 
 * @author xuzao
 * @date 2019-08-21 13:36:50
 **/
public class ProjectVersionCriteria {

	protected String orderByClause;

	protected boolean distinct;

	protected List<Criteria> oredCriteria;

	private int limitStart = -1;

	private int limitEnd = -1;

	public ProjectVersionCriteria() {
	oredCriteria = new ArrayList<Criteria>();
	}

	public void setOrderByClause(String orderByClause) {
		this.orderByClause = orderByClause;
	}
	public String getOrderByClause() {
		return orderByClause;
	}

	public void setDistinct ( boolean distinct){
		this.distinct = distinct;
 	}
	public boolean isDistinct () {
		return distinct;
	}

	public List<Criteria> getOredCriteria () {
		return oredCriteria;
	}

	public void or (Criteria criteria){
		oredCriteria.add(criteria);
	}

	public Criteria or () {
		Criteria criteria = createCriteriaInternal();
		oredCriteria.add(criteria);
		return criteria;
	}

	public Criteria createCriteria () {
		Criteria criteria = createCriteriaInternal();
		if (oredCriteria.size() == 0) {
		oredCriteria.add(criteria);
	}
		return criteria;
	}

	protected Criteria createCriteriaInternal () {
		Criteria criteria = new Criteria();
		return criteria;
	}
	public void clear () {
		oredCriteria.clear();
		orderByClause = null;
		distinct = false;
	}

	public void setLimitStart ( int limitStart){
		this.limitStart = limitStart;
	}

	public int getLimitStart () {
		return limitStart;
	}

	public void setLimitEnd (int limitEnd){
		this.limitEnd = limitEnd;
	}

	public int getLimitEnd () {
		return limitEnd;
	}

	protected abstract static class GeneratedCriteria {
		protected List<Criterion> criteria;
		protected GeneratedCriteria() {
		super();
		criteria = new ArrayList<Criterion>();
	}

	public boolean isValid() {
		return criteria.size() > 0;
	}

	public List<Criterion> getAllCriteria() {
		return criteria;
	}

	public List<Criterion> getCriteria() {
		return criteria;
	}
	protected void addCriterion(String condition) {
		if (condition == null) {
			throw new RuntimeException("Value for condition cannot be null");
	}
		criteria.add(new Criterion(condition));
	}
	protected void addCriterion (String condition, Object value, String property){
		if (value == null) {
			throw new RuntimeException("Value for " + property + " cannot be null");
	}
		criteria.add(new Criterion(condition, value));
	}

	protected void addCriterion (String condition, Object value1, Object value2, String property){
		if (value1 == null || value2 == null) {
			throw new RuntimeException("Between values for " + property + " cannot be null");
	}

		criteria.add(new Criterion(condition, value1, value2));
	}

	public Criteria andIdIsNull () {
		addCriterion("id is null");
		return (Criteria) this;
	}

	public Criteria andIdIsNotNull () {
		addCriterion("id is not null");
		return (Criteria) this;
	}

	public Criteria andIdEqualTo (java.lang.Long value){
		addCriterion("id =", value, "id");
		return (Criteria) this;
	}

	public Criteria andIdNotEqualTo (java.lang.Long value){
		addCriterion("id <>", value, "id");
		return (Criteria) this;
	}

	public Criteria andIdGreaterThan (java.lang.Long value){
		addCriterion("id >", value, "id");
		return (Criteria) this;
	}

	public Criteria andIdGreaterThanOrEqualTo (java.lang.Long value){
		addCriterion("id >=", value, "id");
		return (Criteria) this;
	}

	public Criteria andIdLessThan (java.lang.Long value){
		addCriterion("id <", value, "id");
		return (Criteria) this;
	}

	public Criteria andIdLessThanOrEqualTo (java.lang.Long value){
		addCriterion("id <=", value, "id");
		return (Criteria) this;
	}

	public Criteria andIdIn (List < java.lang.Long > values) {

		addCriterion("id in", values, "id");
		return (Criteria) this;
	}

	public Criteria andIdNotIn (List < java.lang.Long > values) {
		addCriterion("id not in", values, "id");
		return (Criteria) this;
	}

	public Criteria andIdBetween (java.lang.Long value1, java.lang.Long value2){
		addCriterion("id between", value1, value2, "id");
		return (Criteria) this;
	}

	public Criteria andIdNotBetween (java.lang.Long value1, java.lang.Long value2){
		addCriterion("id not between", value1, value2, "id");
		return (Criteria) this;
	}

	public Criteria andNameIsNull () {
		addCriterion("name is null");
		return (Criteria) this;
	}

	public Criteria andNameIsNotNull () {
		addCriterion("name is not null");
		return (Criteria) this;
	}

	public Criteria andNameEqualTo (java.lang.String value){
		addCriterion("name =", value, "name");
		return (Criteria) this;
	}

	public Criteria andNameNotEqualTo (java.lang.String value){
		addCriterion("name <>", value, "name");
		return (Criteria) this;
	}

	public Criteria andNameGreaterThan (java.lang.String value){
		addCriterion("name >", value, "name");
		return (Criteria) this;
	}

	public Criteria andNameGreaterThanOrEqualTo (java.lang.String value){
		addCriterion("name >=", value, "name");
		return (Criteria) this;
	}

	public Criteria andNameLessThan (java.lang.String value){
		addCriterion("name <", value, "name");
		return (Criteria) this;
	}

	public Criteria andNameLessThanOrEqualTo (java.lang.String value){
		addCriterion("name <=", value, "name");
		return (Criteria) this;
	}

	public Criteria andNameIn (List < java.lang.String > values) {

		addCriterion("name in", values, "name");
		return (Criteria) this;
	}

	public Criteria andNameNotIn (List < java.lang.String > values) {
		addCriterion("id not in", values, "name");
		return (Criteria) this;
	}

	public Criteria andNameBetween (java.lang.String value1, java.lang.String value2){
		addCriterion("name between", value1, value2, "name");
		return (Criteria) this;
	}

	public Criteria andNameNotBetween (java.lang.String value1, java.lang.String value2){
		addCriterion("name not between", value1, value2, "name");
		return (Criteria) this;
	}

	public Criteria andNameLike(java.lang.String value) {
		addCriterion("name like", value, "name");
		return (Criteria) this;
	}

	public Criteria andNameNotLike(java.lang.String value) {
		addCriterion("name not like", value, "name");
		return (Criteria) this;
	}
	public Criteria andCodeIsNull () {
		addCriterion("code is null");
		return (Criteria) this;
	}

	public Criteria andCodeIsNotNull () {
		addCriterion("code is not null");
		return (Criteria) this;
	}

	public Criteria andCodeEqualTo (java.lang.String value){
		addCriterion("code =", value, "code");
		return (Criteria) this;
	}

	public Criteria andCodeNotEqualTo (java.lang.String value){
		addCriterion("code <>", value, "code");
		return (Criteria) this;
	}

	public Criteria andCodeGreaterThan (java.lang.String value){
		addCriterion("code >", value, "code");
		return (Criteria) this;
	}

	public Criteria andCodeGreaterThanOrEqualTo (java.lang.String value){
		addCriterion("code >=", value, "code");
		return (Criteria) this;
	}

	public Criteria andCodeLessThan (java.lang.String value){
		addCriterion("code <", value, "code");
		return (Criteria) this;
	}

	public Criteria andCodeLessThanOrEqualTo (java.lang.String value){
		addCriterion("code <=", value, "code");
		return (Criteria) this;
	}

	public Criteria andCodeIn (List < java.lang.String > values) {

		addCriterion("code in", values, "code");
		return (Criteria) this;
	}

	public Criteria andCodeNotIn (List < java.lang.String > values) {
		addCriterion("id not in", values, "code");
		return (Criteria) this;
	}

	public Criteria andCodeBetween (java.lang.String value1, java.lang.String value2){
		addCriterion("code between", value1, value2, "code");
		return (Criteria) this;
	}

	public Criteria andCodeNotBetween (java.lang.String value1, java.lang.String value2){
		addCriterion("code not between", value1, value2, "code");
		return (Criteria) this;
	}

	public Criteria andCodeLike(java.lang.String value) {
		addCriterion("code like", value, "code");
		return (Criteria) this;
	}

	public Criteria andCodeNotLike(java.lang.String value) {
		addCriterion("code not like", value, "code");
		return (Criteria) this;
	}
	public Criteria andPrePublishTimeIsNull () {
		addCriterion("pre_publish_time is null");
		return (Criteria) this;
	}

	public Criteria andPrePublishTimeIsNotNull () {
		addCriterion("pre_publish_time is not null");
		return (Criteria) this;
	}

	public Criteria andPrePublishTimeEqualTo (java.util.Date value){
		addCriterion("pre_publish_time =", value, "pre_publish_time");
		return (Criteria) this;
	}

	public Criteria andPrePublishTimeNotEqualTo (java.util.Date value){
		addCriterion("pre_publish_time <>", value, "pre_publish_time");
		return (Criteria) this;
	}

	public Criteria andPrePublishTimeGreaterThan (java.util.Date value){
		addCriterion("pre_publish_time >", value, "pre_publish_time");
		return (Criteria) this;
	}

	public Criteria andPrePublishTimeGreaterThanOrEqualTo (java.util.Date value){
		addCriterion("pre_publish_time >=", value, "pre_publish_time");
		return (Criteria) this;
	}

	public Criteria andPrePublishTimeLessThan (java.util.Date value){
		addCriterion("pre_publish_time <", value, "pre_publish_time");
		return (Criteria) this;
	}

	public Criteria andPrePublishTimeLessThanOrEqualTo (java.util.Date value){
		addCriterion("pre_publish_time <=", value, "pre_publish_time");
		return (Criteria) this;
	}

	public Criteria andPrePublishTimeIn (List < java.util.Date > values) {

		addCriterion("pre_publish_time in", values, "pre_publish_time");
		return (Criteria) this;
	}

	public Criteria andPrePublishTimeNotIn (List < java.util.Date > values) {
		addCriterion("id not in", values, "pre_publish_time");
		return (Criteria) this;
	}

	public Criteria andPrePublishTimeBetween (java.util.Date value1, java.util.Date value2){
		addCriterion("pre_publish_time between", value1, value2, "pre_publish_time");
		return (Criteria) this;
	}

	public Criteria andPrePublishTimeNotBetween (java.util.Date value1, java.util.Date value2){
		addCriterion("pre_publish_time not between", value1, value2, "pre_publish_time");
		return (Criteria) this;
	}

	public Criteria andPublishTimeIsNull () {
		addCriterion("publish_time is null");
		return (Criteria) this;
	}

	public Criteria andPublishTimeIsNotNull () {
		addCriterion("publish_time is not null");
		return (Criteria) this;
	}

	public Criteria andPublishTimeEqualTo (java.util.Date value){
		addCriterion("publish_time =", value, "publish_time");
		return (Criteria) this;
	}

	public Criteria andPublishTimeNotEqualTo (java.util.Date value){
		addCriterion("publish_time <>", value, "publish_time");
		return (Criteria) this;
	}

	public Criteria andPublishTimeGreaterThan (java.util.Date value){
		addCriterion("publish_time >", value, "publish_time");
		return (Criteria) this;
	}

	public Criteria andPublishTimeGreaterThanOrEqualTo (java.util.Date value){
		addCriterion("publish_time >=", value, "publish_time");
		return (Criteria) this;
	}

	public Criteria andPublishTimeLessThan (java.util.Date value){
		addCriterion("publish_time <", value, "publish_time");
		return (Criteria) this;
	}

	public Criteria andPublishTimeLessThanOrEqualTo (java.util.Date value){
		addCriterion("publish_time <=", value, "publish_time");
		return (Criteria) this;
	}

	public Criteria andPublishTimeIn (List < java.util.Date > values) {

		addCriterion("publish_time in", values, "publish_time");
		return (Criteria) this;
	}

	public Criteria andPublishTimeNotIn (List < java.util.Date > values) {
		addCriterion("id not in", values, "publish_time");
		return (Criteria) this;
	}

	public Criteria andPublishTimeBetween (java.util.Date value1, java.util.Date value2){
		addCriterion("publish_time between", value1, value2, "publish_time");
		return (Criteria) this;
	}

	public Criteria andPublishTimeNotBetween (java.util.Date value1, java.util.Date value2){
		addCriterion("publish_time not between", value1, value2, "publish_time");
		return (Criteria) this;
	}

	public Criteria andRiskIsNull () {
		addCriterion("risk is null");
		return (Criteria) this;
	}

	public Criteria andRiskIsNotNull () {
		addCriterion("risk is not null");
		return (Criteria) this;
	}

	public Criteria andRiskEqualTo (java.lang.String value){
		addCriterion("risk =", value, "risk");
		return (Criteria) this;
	}

	public Criteria andRiskNotEqualTo (java.lang.String value){
		addCriterion("risk <>", value, "risk");
		return (Criteria) this;
	}

	public Criteria andRiskGreaterThan (java.lang.String value){
		addCriterion("risk >", value, "risk");
		return (Criteria) this;
	}

	public Criteria andRiskGreaterThanOrEqualTo (java.lang.String value){
		addCriterion("risk >=", value, "risk");
		return (Criteria) this;
	}

	public Criteria andRiskLessThan (java.lang.String value){
		addCriterion("risk <", value, "risk");
		return (Criteria) this;
	}

	public Criteria andRiskLessThanOrEqualTo (java.lang.String value){
		addCriterion("risk <=", value, "risk");
		return (Criteria) this;
	}

	public Criteria andRiskIn (List < java.lang.String > values) {

		addCriterion("risk in", values, "risk");
		return (Criteria) this;
	}

	public Criteria andRiskNotIn (List < java.lang.String > values) {
		addCriterion("id not in", values, "risk");
		return (Criteria) this;
	}

	public Criteria andRiskBetween (java.lang.String value1, java.lang.String value2){
		addCriterion("risk between", value1, value2, "risk");
		return (Criteria) this;
	}

	public Criteria andRiskNotBetween (java.lang.String value1, java.lang.String value2){
		addCriterion("risk not between", value1, value2, "risk");
		return (Criteria) this;
	}

	public Criteria andRiskLike(java.lang.String value) {
		addCriterion("risk like", value, "risk");
		return (Criteria) this;
	}

	public Criteria andRiskNotLike(java.lang.String value) {
		addCriterion("risk not like", value, "risk");
		return (Criteria) this;
	}
	public Criteria andRemarksIsNull () {
		addCriterion("remarks is null");
		return (Criteria) this;
	}

	public Criteria andRemarksIsNotNull () {
		addCriterion("remarks is not null");
		return (Criteria) this;
	}

	public Criteria andRemarksEqualTo (java.lang.String value){
		addCriterion("remarks =", value, "remarks");
		return (Criteria) this;
	}

	public Criteria andRemarksNotEqualTo (java.lang.String value){
		addCriterion("remarks <>", value, "remarks");
		return (Criteria) this;
	}

	public Criteria andRemarksGreaterThan (java.lang.String value){
		addCriterion("remarks >", value, "remarks");
		return (Criteria) this;
	}

	public Criteria andRemarksGreaterThanOrEqualTo (java.lang.String value){
		addCriterion("remarks >=", value, "remarks");
		return (Criteria) this;
	}

	public Criteria andRemarksLessThan (java.lang.String value){
		addCriterion("remarks <", value, "remarks");
		return (Criteria) this;
	}

	public Criteria andRemarksLessThanOrEqualTo (java.lang.String value){
		addCriterion("remarks <=", value, "remarks");
		return (Criteria) this;
	}

	public Criteria andRemarksIn (List < java.lang.String > values) {

		addCriterion("remarks in", values, "remarks");
		return (Criteria) this;
	}

	public Criteria andRemarksNotIn (List < java.lang.String > values) {
		addCriterion("id not in", values, "remarks");
		return (Criteria) this;
	}

	public Criteria andRemarksBetween (java.lang.String value1, java.lang.String value2){
		addCriterion("remarks between", value1, value2, "remarks");
		return (Criteria) this;
	}

	public Criteria andRemarksNotBetween (java.lang.String value1, java.lang.String value2){
		addCriterion("remarks not between", value1, value2, "remarks");
		return (Criteria) this;
	}

	public Criteria andRemarksLike(java.lang.String value) {
		addCriterion("remarks like", value, "remarks");
		return (Criteria) this;
	}

	public Criteria andRemarksNotLike(java.lang.String value) {
		addCriterion("remarks not like", value, "remarks");
		return (Criteria) this;
	}
	public Criteria andProjectNameIsNull () {
		addCriterion("project_name is null");
		return (Criteria) this;
	}

	public Criteria andProjectNameIsNotNull () {
		addCriterion("project_name is not null");
		return (Criteria) this;
	}

	public Criteria andProjectNameEqualTo (java.lang.String value){
		addCriterion("project_name =", value, "project_name");
		return (Criteria) this;
	}

	public Criteria andProjectNameNotEqualTo (java.lang.String value){
		addCriterion("project_name <>", value, "project_name");
		return (Criteria) this;
	}

	public Criteria andProjectNameGreaterThan (java.lang.String value){
		addCriterion("project_name >", value, "project_name");
		return (Criteria) this;
	}

	public Criteria andProjectNameGreaterThanOrEqualTo (java.lang.String value){
		addCriterion("project_name >=", value, "project_name");
		return (Criteria) this;
	}

	public Criteria andProjectNameLessThan (java.lang.String value){
		addCriterion("project_name <", value, "project_name");
		return (Criteria) this;
	}

	public Criteria andProjectNameLessThanOrEqualTo (java.lang.String value){
		addCriterion("project_name <=", value, "project_name");
		return (Criteria) this;
	}

	public Criteria andProjectNameIn (List < java.lang.String > values) {

		addCriterion("project_name in", values, "project_name");
		return (Criteria) this;
	}

	public Criteria andProjectNameNotIn (List < java.lang.String > values) {
		addCriterion("id not in", values, "project_name");
		return (Criteria) this;
	}

	public Criteria andProjectNameBetween (java.lang.String value1, java.lang.String value2){
		addCriterion("project_name between", value1, value2, "project_name");
		return (Criteria) this;
	}

	public Criteria andProjectNameNotBetween (java.lang.String value1, java.lang.String value2){
		addCriterion("project_name not between", value1, value2, "project_name");
		return (Criteria) this;
	}

	public Criteria andProjectNameLike(java.lang.String value) {
		addCriterion("project_name like", value, "project_name");
		return (Criteria) this;
	}

	public Criteria andProjectNameNotLike(java.lang.String value) {
		addCriterion("project_name not like", value, "project_name");
		return (Criteria) this;
	}
	public Criteria andCreateTimeIsNull () {
		addCriterion("create_time is null");
		return (Criteria) this;
	}

	public Criteria andCreateTimeIsNotNull () {
		addCriterion("create_time is not null");
		return (Criteria) this;
	}

	public Criteria andCreateTimeEqualTo (java.util.Date value){
		addCriterion("create_time =", value, "create_time");
		return (Criteria) this;
	}

	public Criteria andCreateTimeNotEqualTo (java.util.Date value){
		addCriterion("create_time <>", value, "create_time");
		return (Criteria) this;
	}

	public Criteria andCreateTimeGreaterThan (java.util.Date value){
		addCriterion("create_time >", value, "create_time");
		return (Criteria) this;
	}

	public Criteria andCreateTimeGreaterThanOrEqualTo (java.util.Date value){
		addCriterion("create_time >=", value, "create_time");
		return (Criteria) this;
	}

	public Criteria andCreateTimeLessThan (java.util.Date value){
		addCriterion("create_time <", value, "create_time");
		return (Criteria) this;
	}

	public Criteria andCreateTimeLessThanOrEqualTo (java.util.Date value){
		addCriterion("create_time <=", value, "create_time");
		return (Criteria) this;
	}

	public Criteria andCreateTimeIn (List < java.util.Date > values) {

		addCriterion("create_time in", values, "create_time");
		return (Criteria) this;
	}

	public Criteria andCreateTimeNotIn (List < java.util.Date > values) {
		addCriterion("id not in", values, "create_time");
		return (Criteria) this;
	}

	public Criteria andCreateTimeBetween (java.util.Date value1, java.util.Date value2){
		addCriterion("create_time between", value1, value2, "create_time");
		return (Criteria) this;
	}

	public Criteria andCreateTimeNotBetween (java.util.Date value1, java.util.Date value2){
		addCriterion("create_time not between", value1, value2, "create_time");
		return (Criteria) this;
	}

	public Criteria andUpdateTimeIsNull () {
		addCriterion("update_time is null");
		return (Criteria) this;
	}

	public Criteria andUpdateTimeIsNotNull () {
		addCriterion("update_time is not null");
		return (Criteria) this;
	}

	public Criteria andUpdateTimeEqualTo (java.util.Date value){
		addCriterion("update_time =", value, "update_time");
		return (Criteria) this;
	}

	public Criteria andUpdateTimeNotEqualTo (java.util.Date value){
		addCriterion("update_time <>", value, "update_time");
		return (Criteria) this;
	}

	public Criteria andUpdateTimeGreaterThan (java.util.Date value){
		addCriterion("update_time >", value, "update_time");
		return (Criteria) this;
	}

	public Criteria andUpdateTimeGreaterThanOrEqualTo (java.util.Date value){
		addCriterion("update_time >=", value, "update_time");
		return (Criteria) this;
	}

	public Criteria andUpdateTimeLessThan (java.util.Date value){
		addCriterion("update_time <", value, "update_time");
		return (Criteria) this;
	}

	public Criteria andUpdateTimeLessThanOrEqualTo (java.util.Date value){
		addCriterion("update_time <=", value, "update_time");
		return (Criteria) this;
	}

	public Criteria andUpdateTimeIn (List < java.util.Date > values) {

		addCriterion("update_time in", values, "update_time");
		return (Criteria) this;
	}

	public Criteria andUpdateTimeNotIn (List < java.util.Date > values) {
		addCriterion("id not in", values, "update_time");
		return (Criteria) this;
	}

	public Criteria andUpdateTimeBetween (java.util.Date value1, java.util.Date value2){
		addCriterion("update_time between", value1, value2, "update_time");
		return (Criteria) this;
	}

	public Criteria andUpdateTimeNotBetween (java.util.Date value1, java.util.Date value2){
		addCriterion("update_time not between", value1, value2, "update_time");
		return (Criteria) this;
	}


	}

	public static class Criteria extends GeneratedCriteria {

	protected Criteria() {
		super();
		}
	}
	public static class Criterion {
	private String condition;
	private Object value;
	private Object secondValue;
	private boolean noValue;
	private boolean singleValue;
	private boolean betweenValue;
	private boolean listValue;
	private String typeHandler;
	public String getCondition() {

		return condition;
	}

	public Object getValue() {
		return value;
	}

	public Object getSecondValue() {
		return secondValue;
	}

	public boolean isNoValue() {
		return noValue;
	}

	public boolean isSingleValue() {
		return singleValue;
	}

	public boolean isBetweenValue() {
		return betweenValue;
	}

	public boolean isListValue() {
		return listValue;
	}

	public String getTypeHandler() {
		return typeHandler;
	}

	protected Criterion(String condition) {
		super();
		this.condition = condition;
		this.typeHandler = null;
		this.noValue = true;
	}

	protected Criterion(String condition, Object value, String typeHandler) {
		super();
		this.condition = condition;
		this.value = value;
		this.typeHandler = typeHandler;
		if(value instanceof List<?>) {
			this.listValue = true;
		} else {
			this.singleValue = true;
		}
	}

	protected Criterion(String condition, Object value) {
		this(condition, value, null);
	}

	protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
		super();
		this.condition = condition;
		this.value = value;
		this.secondValue = secondValue;
		this.typeHandler = typeHandler;
		this.betweenValue = true;
	}

	protected Criterion(String condition, Object value, Object secondValue) {
		this(condition, value, secondValue, null);
			}
		}
	}
